home *** CD-ROM | disk | FTP | other *** search
/ Workbench Design / WB Collection.iso / workbench werkzeuge / memory & system tools / tinymeter / source / tinymeter_main / volumes.c < prev    next >
C/C++ Source or Header  |  1996-04-07  |  2KB  |  70 lines

  1. #include <exec/types.h>
  2. #include <exec/memory.h>
  3. #include <dos/dos.h>
  4. #include <dos/dosextens.h>
  5. #include <dos/notify.h>
  6. #include <intuition/intuition.h>
  7. #include <intuition/gadgetclass.h>
  8. #include <intuition/intuitionbase.h>
  9. #include <intuition/classusr.h>
  10. #include <intuition/imageclass.h>
  11. #include <intuition/gadgetclass.h>
  12. #include <intuition/cghooks.h>
  13. #include <intuition/icclass.h>
  14. #include <intuition/classes.h>
  15. #include <intuition/sghooks.h>
  16. #include <intuition/screens.h>
  17. #include <datatypes/datatypesclass.h>
  18. #include <datatypes/datatypes.h>
  19. #include <datatypes/pictureclass.h>
  20. #include <graphics/gfxbase.h>
  21. #include <graphics/text.h>
  22. #include <graphics/gfxmacros.h>
  23. #include <utility/tagitem.h>
  24. #include <utility/hooks.h>
  25. #include <libraries/commodities.h>
  26. #include <string.h>
  27. #include <clib/macros.h>
  28. #include "gaugeclass.h"
  29. #include "tinymeter.h"
  30.  
  31. getVolsize(struct tm_sys_set *set,struct tm_data *data,char *volname)
  32. {
  33.     struct InfoData  inf;
  34.     struct DevProc  *devproc;
  35.     struct DosList  *dl=0;
  36.     int    dummy;
  37.  
  38.     if(dl = (struct DosList *)LockDosList(LDF_VOLUMES|LDF_DEVICES|LDF_READ));
  39.     {
  40.         dummy=my_strlen(volname)-1;
  41.         volname[dummy]=0;
  42.         if(FindDosEntry(dl,volname,LDF_VOLUMES|LDF_DEVICES))
  43.         {
  44.             volname[dummy]=':';
  45.             if(devproc=(struct DevProc *)GetDeviceProc(volname,NULL))
  46.             {
  47.                 if( DoPkt(devproc->dvp_Port,ACTION_DISK_INFO,MKBADDR(&inf),NULL,NULL,NULL,NULL)==DOSTRUE)
  48.                 {
  49.                     switch(inf.id_DiskType)
  50.                     {
  51.                         case    ID_UNREADABLE_DISK:
  52.                         case    ID_NOT_REALLY_DOS:
  53.                         case    ID_NO_DISK_PRESENT:
  54.                                 data->volmax=0;
  55.                                 data->volcur=0;
  56.                                 break;
  57.                         default:
  58.                                 data->volcur=(inf.id_NumBlocks-inf.id_NumBlocksUsed)*inf.id_BytesPerBlock;
  59.                                 data->volmax=inf.id_NumBlocks*inf.id_BytesPerBlock;
  60.                                 break;
  61.                     }
  62.                 }
  63.                 FreeDeviceProc(devproc);
  64.             }
  65.         }
  66.         UnLockDosList(LDF_VOLUMES|LDF_DEVICES|LDF_READ);
  67.     }
  68. }
  69.  
  70.